package com.zyht.bank.service.impl;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.zyht.bank.dao.AxdCertificateImgeMapper;
import com.zyht.bank.dao.AxdCertificateImgeSQLMapper;
import com.zyht.bank.dao.AxdCertificateInfoMapper;
import com.zyht.bank.dao.AxdCertificateInfoSQLMapper;
import com.zyht.bank.dao.AxdCustLoanMapper;
import com.zyht.bank.entity.AxdCertificateImge;
import com.zyht.bank.entity.AxdCertificateInfo;
import com.zyht.bank.entity.AxdCertificateInfoExample;
import com.zyht.bank.entity.AxdCustLoan;
import com.zyht.bank.service.AxdCertificateInfoService;
import com.zyht.bank.wechat.vo.AxdCertificateInfoVo;
import com.zyht.common.BaseDao;
import com.zyht.common.BaseServiceImpl;
import com.zyht.common.bean.PropertiesUtilBean.PropertiesUtils;
import com.zyht.wechat.framework.constant.ConfigConstants;

@Service("axdCertificateInfoService")
public class AxdCertificateInfoServiceImpl extends BaseServiceImpl<AxdCertificateInfo, AxdCertificateInfoExample>
		implements AxdCertificateInfoService {

	@Resource
	private AxdCertificateInfoMapper axdCertificateInfoMapper;

	@Resource
	private AxdCertificateInfoSQLMapper axdCertificateInfoSQLMapper;

	@Resource
	private AxdCertificateImgeMapper axdCertificateImgeMapper;

	@Resource
	private AxdCertificateImgeSQLMapper axdCertificateImgeSQLMapper;

	@Resource
	private AxdCustLoanMapper axdCustLoanMapper;

	@Override
	public BaseDao<AxdCertificateInfo, AxdCertificateInfoExample> dao() {

		return axdCertificateInfoMapper;
	}

	@Override
	public List<AxdCertificateInfoVo> getImgs(Integer custId) {
		return axdCertificateInfoSQLMapper.getImgs(custId);
	}

	@Override
	public void insertInfoAndImg(AxdCertificateInfo info, String[] imgs) {
		// 更新贷款记录变状态
		AxdCustLoan axdCustLoan = axdCustLoanMapper.selectByPrimaryKey(info.getCustLoanId());
		if (null != axdCustLoan) {
			axdCustLoan.setIsCheck("1");
			axdCustLoan.setIsCheckConform("0");
			axdCustLoan.setModifyDate(info.getCreateTime());
			axdCustLoan.setCheckReply("");
			axdCustLoanMapper.updateByPrimaryKey(axdCustLoan);
		}
		// 保存凭证信息
		info.setLoanDate(axdCustLoan.getLoanDate());
		axdCertificateInfoMapper.insert(info);

		// 保存图片
		List<AxdCertificateImge> imges = new ArrayList<AxdCertificateImge>();

		for (int i = 0; i < imgs.length; i++) {
			String dir = PropertiesUtils.getConfig(ConfigConstants.PHONE_FILE_UPLOAD_DIR);
			dir = dir + imgs[i];
			File file = new File(dir);
			if (file.exists() && file.isFile()) {
				AxdCertificateImge imge = new AxdCertificateImge();
				imge.setCertificateInfoId(info.getCertificateInfoId());
				imge.setImgUrl(imgs[i]);
				imges.add(imge);
			}

		}
		axdCertificateImgeSQLMapper.insertList(imges);

	}

}
